package com.example.parent.bookmanage_cache.service;

import com.example.parent.bookmanage_cache.entity.Book;

/**
 * 图书服务层接口
 * 定义图书相关的业务逻辑操作，包括查询、更新和删除图书
 * 作为控制器与数据访问层之间的中间层，处理核心业务逻辑
 */
public interface BookService {

    /**
     * 根据图书ID查询图书信息
     * 负责处理图书查询的业务逻辑，可能包括缓存处理、权限校验等
     *
     * @param id 图书唯一标识ID
     * @return Book 图书实体对象，包含图书的详细信息
     */
    public Book findById(Integer id);

    /**
     * 根据图书ID修改图书名称
     * 负责处理图书名称更新的业务逻辑，可能包括数据验证、缓存更新等
     *
     * @param id   图书唯一标识ID
     * @param name 新的图书名称
     * @return Book 修改后的图书实体对象
     */
    public Book updateById(Integer id, String name);

    /**
     * 根据图书ID删除图书
     * 负责处理图书删除的业务逻辑，可能包括关联数据处理、缓存清理等
     *
     * @param id 图书唯一标识ID
     */
    public void deleteById(Integer id);
}